The present invention relates to an information processor efficiently using a storage device and a method of operation thereof, and more particularly, an information processor that has a plurality of high speed accessible storage devices in addition to a storage device of a large capacity that can be accessed only at low speed for providing an improved virtual storage environment utilizing these storage devices and a method of operation thereof.
Data exchange is conventionally carried out between applications that operate on equipment such as image terminals, word processors and work stations using a computer. Such data exchange is carried out as follows. Referring to FIG. 1, it is assumed that applications 1 and 2 operate on first and second windows 78 and 80, respectively, provided on an operation screen. It is assumed that document processing programs are operated as the two applications in the example shown in FIG. 1.
In the second application it is necessary to copy a partial region 82 of the text displayed in application 1 during creation of a document. In this case, the so-called "cut and paste" functionality is used. This "cut and paste" is carried out as follows.
First, a cut out region 82 is specified on the text displayed in application 1 on a window 78. Then, a storage command display key 84 displayed on window 78 is specified to operate the storage function as shown in FIG. 2. The specified character string is temporarily stored in a buffer called a cut buffer 92 in a common memory 90 prepared in a storage area of the computer used as a terminal. Next, the position to insert the stored character string is specified in application 2 operated on window 80, and a cut out key 88 is operated. The character string stored in cut buffer 92 is inserted at the specified position in the document displayed on application 2 as a cut out sentence 86.
Recent server-client models make this cut buffer in a common memory or use a cut buffer of an X server according to the regulations of ICCCM (Inter-client Communication Convention Manual: MIT X Consortium Standard) related to a certain multiwindow system.
In the data exchange carried out between these applications, the capacity of the data to be exchanged greatly depends upon the application, and there are cases where the required cut buffer capacity cannot be predicted accurately. When the size of the required cut buffer 92 greatly exceeds the standard size prepared by a main memory 94, an extended area is often provided in a secondary storage device 96 such as a hard disk similar to the virtual storage method generally used in large computers and work stations, as shown in FIG. 4. Such extension of a cut buffer using a secondary storage device 96 is also adapted in systems having a multiprocessor structure or when utilizing a cut buffer of an X server in the aforementioned server-client model.
A large computer system or a work station includes a primary storage device (main storage device) of high speed and small capacity as a storage area where a program is executed to provide a virtual storage system establishing a virtual area of large capacity, as mentioned above. The virtual storage system utilizes a secondary storage device (auxiliary storage device) of low speed and large capacity such as a magnetic disk storage device. In the virtual storage system, programs and data have their priority determined according to their access frequency. Programs and data of high priority are stored in the primary storage device, and the remaining programs and data are stored in the secondary storage device. When it becomes necessary to execute a program stored in the secondary storage device during program execution, this program is transferred to the primary storage device to be executed on the primary storage device. This operation of transferring a program from a secondary storage device to store the same into the primary storage device is called "loading". Loading of data and programs are carried out in segments or in pages.
The same area in the primary storage device is used by a plurality of programs by loading a program from a secondary storage device into the primary storage device to be executed if necessary at the time of program execution. In other words, the primary storage device functions as if it has a large storage area where a plurality of programs can be executed, resulting in increasing virtually the capacity of the primary storage device.
When a program is loaded during program execution employing the virtual storage system, the program retrieved from the secondary storage device is overwritten on a program previously stored in the primary storage device. This is called "overlay". In the case of this overlay, the former program in the primary storage device overlaid is lost unless a roll in/roll out method is employed to avoid this.
FIG. 5 is a diagram for describing a conventional roll in/roll out method. The roll in/roll out method is carried out between a primary storage device and a secondary storage device in an information processor as shown in FIG. 5. Referring to FIG. 5, the primary storage device stores first, second, and third main programs, and the secondary storage device stores a main program (not shown). In loading another main program from the secondary storage device to the primary storage device, a program in the primary storage device will be saved in the secondary storage device, and then another main program 0 is allocated in the primary storage device. Therefore, the program originally residing in the primary storage device will not be lost, and can be executed afterwards. The operation of saving a program in the primary storage device into the secondary storage device is called "roll out", and the operation of re-loading the rolled out program to the primary storage device is called "roll in".
The roll in/roll out method is used to submit temporarily a memory area in the primary storage device for an interrupting program of high processing priority during program execution. Before the program of high priority is then loaded, the program currently executed on the primary storage device is rolled out, and the program of high priority is then loaded. On completion of the execution of the program of high priority, the rolled out program that had its execution interrupted is rolled in to re-start its execution.
Thus, the roll in/roll out method in a virtual storage system is carried out between a primary storage device and a secondary storage device.
The secondary storage device shown in FIG. 5 is generally a magnetic disk storage device (referred to as HD hereinafter) or a flexible disk storage device (referred to as an FD hereinafter). The data reading speed and writing speed of a secondary storage device is very slow in comparison with a DRAM (Dynamic Random Access Memory) or an SRAM (Static Random Access Memory) forming the primary storage device.
The standard access speed of a SRAM, a DRAM, a hard disk, and a floppy disk is shown in Table 1 in an access of a unit of 4 KB.
TABLE 1 ______________________________________ After Normalization Storage Device Access Speed (SRAM = 1) ______________________________________ SRAM about 20 ns.about.100 ns 1 DRAM 60 ns.about.110 ns .apprxeq.1 Hard Disk about 20 ms 10.sup.5 .about.10.sup.6 Floppy Disk Hundreds ms 10.sup.6 .about.10.sup.7 ______________________________________
It can be appreciated from Table 1 that the access speed of an HD forming a secondary storage device is slower by 10.sup.5 -10.sup.6 times in comparison with that of a SRAM or a DRAM forming a primary storage device. It can also be appreciated that the access speed of an FD forming a secondary storage device is slower by 10.sup.6 -10.sup.7 times. It is apparent that there is great difference in the access speed between a primary storage device and a second storage device.
This difference in the access speed between a primary storage device and a secondary storage device creates a problem of delaying the program exchange speed at the time of roll in/roll out of a program. This problem will in turn creates the problem of delaying the overall processing speed of an information processor including a secondary storage device in relation to a primary storage device employing the virtual storage system. Moreover a delay in the program exchange speed becomes significant as the capacity of the program to be rolled in/rolled out increases.
When a secondary storage device is used as the aforementioned extended area of a cut buffer as in a virtual storage system, the area that can be utilized can be greatly increased. Therefore, any data regardless of its size can be exchanged by using this extended area. However, hard disks and floppy disks used as secondary storage devices have inferior read/write speed in comparison with that of DRAMs and SRAMs used as primary storage devices (main memory) as described above. This low access speed is the bottleneck in improving the speed of data exchange between applications in using an extended area of a cut buffer as a secondary storage device.
A method of using a disk cache as a method of avoiding this problem common to a virtual storage and data exchange using a cut buffer is known. Disk cache is a method of increasing the access speed of a secondary storage device characterized in that data in the secondary storage device that has particularly high access frequency is stored in a semiconductor memory.
A RAM disk cache is employed in a personal computer by mounting a RAM (Random Access Memory) as an extension of the main storage device to improve the processing speed in the above-described virtual storage system. Increase in the processing speed by this RAM disk cache can be achieved in the virtual storage system even in a computer system employing a multiprocessor structure.
The above-described method of improving the access speed of a secondary storage device in the virtual storage system requires the provision of a high speed access memory in addition to the primary storage device. This results in the increase of cost and also prevents reduction in size of the device.
Furthermore, when the application program processes continuously data exceeding a predetermined cache capacity, the processing performance of the device will be degraded since the cache capacity is not adequate. The optimum capacity of the disk cache varies during execution of an application program, resulting in a problem that the optimum capacity of a disk cache could not be predicted.
In order to avoid the high cost and the problem relating to optimum capacity when such a disk cache is employed, many information processors of low cost employ, not the disk cache method, but a method of reading/writing data directly with a secondary storage device. However, as described with reference to Table 1, the secondary storage device is low in access speed in comparison with the primary storage device. Because the overhead associated with the access time period with respect to a secondary storage device prevents an increase in the program exchange speed at the time of program overlay, the actual of accessing the secondary storage device is not the basic solution to the problem.